package javaman.servlet;

import java.io.IOException;

import javaman.gestor.GestorCategoria;
import javaman.gestor.GestorProfesor;
import javaman.gestor.GestorPublicacion;
import javaman.modelo.Categoria;
import javaman.modelo.Parametro;
import javaman.modelo.ProfesorCategoria;
import javaman.modelo.Publicacion;
import javaman.modelo.Usuario;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class LoadRegistrarPublicacionServlet
 */
public class LoadRegistrarPublicacionServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
	GestorProfesor gestorProfesor = new GestorProfesor();
	GestorCategoria gestorCategoria = new GestorCategoria();  
	GestorPublicacion gestorPublicacion = new GestorPublicacion();
	  /**
     * @see HttpServlet#HttpServlet()
     */
    public LoadRegistrarPublicacionServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		// TODO Auto-generated method stub
		String idprofesor = request.getParameter("idprofesor");
		String accion = request.getParameter("accion");
		String destino = "/formularioPublicacion.jsp";
		
		Usuario profesor = gestorProfesor.buscarProfesorById(Integer.parseInt(idprofesor));
		ProfesorCategoria profesorCategoria[] = gestorProfesor.buscarCategoriasByProfesor(Integer.parseInt(idprofesor));
		Categoria categorias[] = null;
		
		String nombreProfesor = profesor.getNombres() + " "+profesor.getPaterno() + " "+ profesor.getMaterno();
		
		if(profesorCategoria!= null) {
			categorias = new Categoria[profesorCategoria.length];
			for(int i=0;i<profesorCategoria.length;i++) {
				categorias[i] = gestorCategoria.buscarCategoriasById(profesorCategoria[i].getIdcategoria());
				
			}
		}
		
		Parametro[] arrPaquete = gestorPublicacion.obtenerPaquetes();
		
		if(accion.equals("listar")) {
			Publicacion[] publicaciones = gestorPublicacion.listarPubliacionesPorProfesor(Integer.parseInt(idprofesor));		
			request.setAttribute("arrListado",publicaciones);
			destino = "/listadoPublicacion.jsp";
		} else if(accion.equals("insertar")){
			request.setAttribute("idprofesor",idprofesor);
			request.setAttribute("nombreProfesor",nombreProfesor);
			request.setAttribute("estado","PENDIENTE");
			request.setAttribute("perfil",profesor.getPerfil());
			request.setAttribute("arrCategorias",categorias);
			request.setAttribute("arrPaquete",arrPaquete);
			request.setAttribute("arrCategorias",categorias);
		} else if(accion.equals("modificar")) {
			
			String idpublicacion = request.getParameter("idpublicacion");
		
			Publicacion publicacion = gestorPublicacion.obtenerPublicacionById(Integer.parseInt(idpublicacion));
			
			if(publicacion.getIdestado()==2) {
				request.setAttribute("estado","PUBLICADO");
			} else {
				request.setAttribute("estado","PENDIENTE");
			}
			
			request.setAttribute("texto",publicacion.getTexto());
			request.setAttribute("idpaquete",publicacion.getIdpaquete());
			request.setAttribute("idpublicacion",idpublicacion);
			request.setAttribute("idprofesor",idprofesor);
			request.setAttribute("nombreProfesor",nombreProfesor);
			request.setAttribute("perfil",profesor.getPerfil());
			request.setAttribute("arrCategorias",categorias);
			request.setAttribute("arrPaquete",arrPaquete);
			request.setAttribute("arrCategorias",categorias);
			
		}else if(accion.equals("eliminar")) {
			String idpublicacion = request.getParameter("idpublicacion");
			
			String resultado = gestorPublicacion.eliminarPublicacion(Integer.parseInt(idpublicacion));
			
			Publicacion[] publicaciones = gestorPublicacion.listarPubliacionesPorProfesor(Integer.parseInt(idprofesor));
				
			request.setAttribute("arrListado",publicaciones);
			if(!resultado.equals("OK")) {
				request.setAttribute("resultado",resultado);
			}
			
			request.setAttribute("idprofesor",idprofesor);
			request.setAttribute("nombreProfesor",nombreProfesor);
			request.setAttribute("arrListado",publicaciones);
			
			destino = "/listadoPublicacion.jsp";
		}else if(accion.equals("pagar")) {
			
			String idpublicacion = request.getParameter("idpublicacion");
			String monto = "";
			Publicacion publicacion = gestorPublicacion.obtenerPublicacionById(Integer.parseInt(idpublicacion));
			
			if(publicacion.getIdestado()==2) {
				request.setAttribute("estado","PUBLICADO");
			} else {
				request.setAttribute("estado","PENDIENTE");
			}	
			
			request.setAttribute("monto",gestorPublicacion.obtenerMontoSoles(publicacion));
			request.setAttribute("texto",publicacion.getTexto());
			request.setAttribute("idpaquete",publicacion.getIdpaquete());
			request.setAttribute("idpublicacion",idpublicacion);
			request.setAttribute("idprofesor",idprofesor);
			request.setAttribute("nombreProfesor",nombreProfesor);
			request.setAttribute("perfil",profesor.getPerfil());
			request.setAttribute("arrCategorias",categorias);
			request.setAttribute("arrPaquete",arrPaquete);
			request.setAttribute("arrCategorias",categorias);
			destino = "/formularioPublicacionPago.jsp";
		}
		
		request.setAttribute("accion",accion);
		
		RequestDispatcher rd = request.getRequestDispatcher(destino);
		rd.forward(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		
	}

}
